package com.qfedu.edu.orderservice.utils;

import org.joda.time.DateTime;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.atomic.AtomicLong;

/**
 * @author xiaobobo
 * @title: OrderNumberUtils
 * @projectName seckill-fy-2401-parent
 * @description: 订单号的泽阳一个工具类
 * @date 2024/11/11  16:12
 */
public class OrderNumberUtils {

    //设置了个默认值
    private static AtomicLong atomicLong = new AtomicLong(0);


    /**
     * 创建订单号
     * 还要防止生成的这个年月日时分秒重复 所以还要加锁
     * 加锁只能加分布式锁...
     *
     * @return
     */
    public static String createOrderNumber(String classId) {
        //创建订单号
        //策略 :年月日时分秒 自增  产品id的HashCode值
        String first = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        //第二部分
        long second = atomicLong.incrementAndGet();
        //第三部分
        int third = classId.hashCode();
        return first+second+third;
    }


}
